{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "75e666be-afdb-4b18-b79c-1f5f180851ef",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7aa528b8-7b79-492e-a819-706b96ed995f",
   "metadata": {},
   "source": [
    "## 导入数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "fc3dc508-dde2-4595-a406-afd06f982857",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Exam 1 score</th>\n",
       "      <th>Exam 2 score</th>\n",
       "      <th>Admitted</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>34.623660</td>\n",
       "      <td>78.024693</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>30.286711</td>\n",
       "      <td>43.894998</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>35.847409</td>\n",
       "      <td>72.902198</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>60.182599</td>\n",
       "      <td>86.308552</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>79.032736</td>\n",
       "      <td>75.344376</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Exam 1 score  Exam 2 score  Admitted\n",
       "0     34.623660     78.024693       0.0\n",
       "1     30.286711     43.894998       0.0\n",
       "2     35.847409     72.902198       0.0\n",
       "3     60.182599     86.308552       1.0\n",
       "4     79.032736     75.344376       1.0"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Load Data\n",
    "data = np.loadtxt(\"data/ex2data1.txt\", delimiter=\",\")\n",
    "data = pd.DataFrame(data, columns=[\"Exam 1 score\",\"Exam 2 score\",\"Admitted\"])\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "ecd7e719-45d1-488c-8b91-6bf5d5ba66bd",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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UEjz58+PP+b3Y/DTn/5UoVAo4WfYsGHx5/2+/5J08OBBXXvttSooKFBeXp4uuugivfXWW/HnjTG66667VFRUpLy8PJWXl2vv3r0utthZ55133hmfgVAopHnz5kkKxmegsbFRixYtUklJifLy8jR48GDdfffdCeuk+P1zUFdXp/nz52vQoEHKy8vTZZddpm3btsWf99v+v/HGG5o6daqKi4sVCoW0du3ahOeT2d9jx45p1qxZys/PV58+fXTDDTfo+PHjzjfWBNBvf/tb89JLL5n33nvP7Nmzx/z4xz82PXr0MLt27TLGGPPd737XDBgwwGzYsMG89dZbZvz48eayyy5zudXpsXXrVnPeeeeZkSNHmltuuSX+uN+PweLFi82FF15oDh8+HP/53//93/jzft//Y8eOmUGDBpnrrrvObNmyxXzwwQdm/fr15v33349vc99995lwOGzWrl1r/vjHP5q//du/NSUlJeaTTz5xseXOOXLkSML7/8orrxhJ5vXXXzfG+P8zYIwx9957rykoKDAvvviiqaysNM8884zp1auXeeihh+Lb+P1z8I1vfMOUlpaajRs3mr1795rFixeb/Px885e//MUY47/9/8///E9z5513mmeffdZIMs8991zC88ns7+TJk83FF19sNm/ebP7rv/7LDBkyxMycOdPxtgYyQGnNWWedZf7lX/7F1NTUmB49ephnnnkm/ty7775rJJmKigoXW+i8uro6M3ToUPPKK6+YL3/5y/EAJQjHYPHixebiiy9u9bkg7P/tt99uJkyY0ObzTU1NJhKJmH/6p3+KP1ZTU2NycnLMU089lYkmZtwtt9xiBg8ebJqamgLxGTDGmClTppg5c+YkPHbNNdeYWbNmGWP8/zn4+OOPTbdu3cyLL76Y8Pjo0aPNnXfe6fv9bxmgJLO/u3fvNpLMtm3b4tu8/PLLJhQKmYMHDzravkCmeJprbGzUmjVrdOLECZWVlWn79u06deqUysvL49sMGzZMAwcOVEVFhYstdd68efM0ZcqUhH2VFJhjsHfvXhUXF+v888/XrFmztH//fknB2P/f/va3Gjt2rL7+9a+rX79+uuSSS/TYY4/Fn6+srFRVVVXCMQiHwxo3bpxvjkFzJ0+e1KpVqzRnzhyFQqFAfAYk6bLLLtOGDRv03nvvSZL++Mc/atOmTbrqqqsk+f9z8Omn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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(data[\"Exam 1 score\"], data[\"Exam 2 score\"])\n",
    "\n",
    "X = data[[\"Exam 1 score\",\"Exam 2 score\"]].to_numpy()\n",
    "y = data[[\"Admitted\"]].to_numpy()\n",
    "y = y.reshape(y.shape[0],)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "69cc99b5-d89c-4017-82ce-e3458b8a7cec",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "b = data.to_numpy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "1f2b36fd-15f0-46ff-b49d-61eac1daf2e6",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "positive = data[\"Admitted\"] == 1\n",
    "negative = data[\"Admitted\"] == 0\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "c0bfa0f5-e365-4926-a458-0dd24d018e6f",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "score_1_pos = data[\"Exam 1 score\"][positive]\n",
    "score_1_neg = data[\"Exam 1 score\"][negative]\n",
    "\n",
    "score_2_pos = data[\"Exam 2 score\"][positive]\n",
    "score_2_neg = data[\"Exam 2 score\"][negative]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "73710bc6-a556-4ad5-9ccd-2710e768f786",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(score_1_pos, score_2_pos, label = \"Admitted\")\n",
    "plt.scatter(score_1_neg, score_2_neg, label = \"Fail\")\n",
    "plt.legend()\n",
    "plt.xlabel(\"Exam 1 socre\")\n",
    "plt.ylabel(\"Exam 2 score\")\n",
    "plt.title(\" Scatter plot of training data\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9bef817c-68c7-4cff-84a6-cd7009e516cb",
   "metadata": {},
   "source": [
    "## Sigmoid 函数\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "8114affc-b826-474b-9a1c-a8946d871711",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "def sigmoid(z):\n",
    "    \"\"\"\n",
    "    计算z的sigmoid值\n",
    "    Args:\n",
    "        z: (ndarray) 标量，或者numpy array, z = W.X + b\n",
    "    Returns:\n",
    "        g: (ndarray) 与z同秩，g = 1/(1 + exp(-z))\n",
    "    \"\"\"\n",
    "    g = 1/(1 + np.exp(-z))\n",
    "    return g"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c9659b87-9b2d-44c6-ab45-f1538982f158",
   "metadata": {},
   "source": [
    "根据函数定义，sigmoid(0) = 0.5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "d08f78e0-dc92-42b7-be0b-6c6b49103c50",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sigmoid(0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "7537a32e-a2dc-4fcd-b81c-ce7e560b50d6",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.73105858, 0.5       ],\n",
       "       [0.5       , 0.88079708]])"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sigmoid(np.array([[1,0],[0,2]]))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e208a1b6-2029-4655-a4e7-fb97830a084b",
   "metadata": {},
   "source": [
    "## 损失函数与成本函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "e5069db8-28b4-45a0-a9ab-f06405e388a2",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "\n",
    "def compute_cost(X, y_train, w, b):\n",
    "    \"\"\"\n",
    "    Computes the cost over all examples\n",
    "    Args:\n",
    "      X : (ndarray Shape (m,n)) data, m examples by n features\n",
    "      y : (array_like Shape (m,)) target value \n",
    "      w : (array_like Shape (n,)) Values of parameters of the model      \n",
    "      b : scalar Values of bias parameter of the model\n",
    "    Returns:\n",
    "      total_cost: (scalar)         cost \n",
    "    \"\"\"\n",
    "    z = np.dot(X,w) + b\n",
    "    g = sigmoid(z)\n",
    "    loss = (-y * np.log(g) - (1-y) * np.log(1-g))\n",
    "    cost = loss.mean()\n",
    "    return cost"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "84be8940-7665-4fff-92ba-12b870e2ec92",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "b4f75c82-08c6-490e-ab8b-796b3bd318af",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Cost at test w,b: 0.218\n"
     ]
    }
   ],
   "source": [
    "# Compute and display cost with non-zero w\n",
    "test_w = np.array([0.2, 0.2])\n",
    "test_b = -24.\n",
    "cost = compute_cost(X, y, test_w, test_b)\n",
    "print('Cost at test w,b: {:.3f}'.format(cost))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2dd133ff-2171-48e1-aa4b-d906c42f9024",
   "metadata": {},
   "source": [
    "## 梯度下降\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "6e4e3279-8add-468b-be63-df133711a83e",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "w = np.array([0.2,-0.5])\n",
    "b = -24\n",
    "\n",
    "def compute_gradient(X, y, w, b):\n",
    "    \"\"\"\n",
    "    计算梯度下降的斜率\n",
    "    Args:\n",
    "        X: (ndarray Shape (m,n)) Feture组成的数据矩阵。例如尺寸、年份\n",
    "        y: (array_like Shape (m,1)) 真实数据。Sigmoid数据为0/1的矩阵\n",
    "        w: (array_like Shape (m,1)) 各Feture权重\n",
    "        b: (Scalar) 偏执值\n",
    "    Returns:\n",
    "        w_gradient: (array_like Shape (n,1)) The gradient of the cost w.r.t. the parameter w.\n",
    "        b_gradient:(scalar) The gradient of the cost w.r.t. the parameter b.\n",
    "    \"\"\"\n",
    "    z = np.dot(X,w) + b\n",
    "    g = sigmoid(z)\n",
    "\n",
    "    b_gradient = (g - y.reshape(y.shape[0],)).mean()\n",
    "    w_gradient = np.zeros(w.shape)\n",
    "    for i in range(X.shape[1]):\n",
    "        w_gradient[i] = ( (g - y.reshape(y.shape[0],)) * X[:,i] ).mean()\n",
    "        \n",
    "    return w_gradient, b_gradient"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "cbfcd47e-ace9-4b8c-afce-295af6d25196",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "dj_db at test_w: [-44.83135362 -44.37384125]\n",
      "dj_dw at test_w: -0.5999999999991071\n"
     ]
    }
   ],
   "source": [
    "# 测试\n",
    "test_w = np.array([ 0.2, -0.5])\n",
    "test_b = -24\n",
    "dj_db, dj_dw  = compute_gradient(X, y, test_w, test_b)\n",
    "print('dj_db at test_w:', dj_db)\n",
    "print('dj_dw at test_w:', dj_dw.tolist())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b29af2dd-41c8-40fb-adad-d839ff00ef0c",
   "metadata": {},
   "source": [
    "**Expected Output**:\n",
    "<table>\n",
    "  <tr>\n",
    "    <td> <b>dj_db at initial w (zeros)<b></td>\n",
    "    <td> -0.5999999999991071 </td> \n",
    "  </tr>\n",
    "  <tr>\n",
    "    <td> <b>ddj_dw at initial w (zeros):<b></td>\n",
    "    <td>  [-44.8313536178737957, -44.37384124953978] </td> \n",
    "  </tr>\n",
    "</table>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "id": "6dacaa9e-ab28-4528-9ef1-3172bfa0a023",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "e20220f580fc4558924b71b8f85a7c83",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/10000 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iteration:    0, cost:27.6\n",
      "Iteration: 1000, cost:0.31\n",
      "Iteration: 2000, cost:0.204\n",
      "Iteration: 3000, cost:0.204\n",
      "Iteration: 4000, cost:0.204\n",
      "Iteration: 5000, cost:0.204\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "IOPub message rate exceeded.\n",
      "The Jupyter server will temporarily stop sending output\n",
      "to the client in order to avoid crashing it.\n",
      "To change this limit, set the config variable\n",
      "`--ServerApp.iopub_msg_rate_limit`.\n",
      "\n",
      "Current values:\n",
      "ServerApp.iopub_msg_rate_limit=1000.0 (msgs/sec)\n",
      "ServerApp.rate_limit_window=3.0 (secs)\n",
      "\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iteration: 8000, cost:0.204\n",
      "Iteration: 9000, cost:0.204\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'Gradient Decent')"
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAHHCAYAAACle7JuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA7SklEQVR4nO3deXiU1d3/8c9MlklCNrZsGCCyyKooAoKoVCKI1IryVFRqWSwKBRWppVJ3WxvEPopF1PprC9SKC4+CLVUsO2oRlR1BdgWRhM1sLAEy5/cHzA1jApqZyZwMeb+uay7JPWdmvnNQ+Hju871vlzHGCAAAIAK5bRcAAAAQKIIMAACIWAQZAAAQsQgyAAAgYhFkAABAxCLIAACAiEWQAQAAEYsgAwAAIhZBBgAARCyCDICgDB48WE2bNvU75nK59Nhjj1mpB0DtQpABItT27ds1atQotWzZUgkJCUpISFCbNm00cuRIrVmzxnZ51W769OmaOHHiDx7ftGlTuVwuuVwuud1upaamqn379rrzzju1bNmy6iu0Gv3hD3/QrFmzbJcBWOXiXktA5Jk9e7YGDBig6OhoDRw4UBdddJHcbre++OILvf322/rqq6+0fft2NWnSpNprGTx4sBYtWqQvv/zSOXbkyBFFR0crOjq62j73xz/+sdatW+f3uWfTtGlT1a1bV7/61a8kSSUlJdqwYYNmzJih/Px83XfffXrmmWeqrd7qkJiYqP/5n//R1KlTbZcCWFN9f8oAqBZbt27VLbfcoiZNmmj+/PnKzMz0e/6pp57SCy+8ILf77AuuBw8eVJ06daqlxri4uGp532A1atRIP/vZz/yOPfXUU7rtttv07LPPqkWLFhoxYoSl6gAEglNLQISZMGGCDh48qClTplQIMZIUHR2te+65R9nZ2c6xwYMHKzExUVu3btV1112npKQkDRw4UJL0wQcf6Kc//akaN24sj8ej7Oxs3XfffTp8+HCF9541a5batWunuLg4tWvXTjNnzqy0xsr2yOzatUtDhw5Venq6PB6P2rZtq7/97W9+YxYtWiSXy6U333xTTz75pM477zzFxcWpZ8+e2rJlizOuR48e+ve//62vvvrKOV303X06P1R8fLxeeeUV1atXT08++aROX6T2er2aOHGi2rZtq7i4OKWnp+uuu+7St99+W+F93nvvPV111VVKSkpScnKyOnXqpOnTp/uNWbZsma699lqlpKQoISFBV111lT766CO/MY899phcLpe2bNmiwYMHKzU1VSkpKRoyZIgOHTrkjHO5XDp48KCmTZvmzMHgwYMDmgMgkrEiA0SY2bNnq3nz5urSpUuVXnf8+HH17t1b3bt31x//+EclJCRIkmbMmKFDhw5pxIgRql+/vj755BNNmjRJX3/9tWbMmOG8/j//+Y/69++vNm3aKC8vT/v379eQIUN03nnnfe9nFxQU6LLLLpPL5dKoUaPUsGFDvffee7rjjjtUXFys0aNH+40fP3683G637r//fhUVFWnChAkaOHCgs5flwQcfVFFRkb7++ms9++yzkk6cZglUYmKibrzxRv31r3/V+vXr1bZtW0nSXXfdpalTp2rIkCG65557tH37dj3//PNauXKlPvroI8XExEiSpk6dqqFDh6pt27YaN26cUlNTtXLlSs2ZM0e33XabJGnBggXq06ePOnbsqEcffVRut1tTpkzR1VdfrQ8++ECdO3f2q+nmm29WTk6O8vLytGLFCv3lL39RWlqannrqKUnSK6+8ol/84hfq3Lmz7rzzTklSs2bNAp4DIGIZABGjqKjISDL9+vWr8Ny3335r9u7d6zwOHTrkPDdo0CAjyTzwwAMVXnf6OJ+8vDzjcrnMV1995Rzr0KGDyczMNIWFhc6x//znP0aSadKkid/rJZlHH33U+fmOO+4wmZmZZt++fX7jbrnlFpOSkuLUsHDhQiPJtG7d2pSVlTnjnnvuOSPJrF271jnWt2/fCp97Nk2aNDF9+/Y94/PPPvuskWTeeecdY4wxH3zwgZFkXn31Vb9xc+bM8TteWFhokpKSTJcuXczhw4f9xnq9XuefLVq0ML1793aOGXNi7nNycsw111zjHHv00UeNJDN06FC/97rxxhtN/fr1/Y7VqVPHDBo06AfOAHBu4tQSEEGKi4slVb760KNHDzVs2NB5TJ48ucKYyvZ/xMfHO78+ePCg9u3bp27duskYo5UrV0qSdu/erVWrVmnQoEFKSUlxxl9zzTVq06bNWWs2xuitt97S9ddfL2OM9u3b5zx69+6toqIirVixwu81Q4YMUWxsrPPzFVdcIUnatm3bWT8rGL45LSkpkXRipSolJUXXXHONX80dO3ZUYmKiFi5cKEmaO3euSkpK9MADD1TYG+RyuSRJq1at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Gj9+vFwul0aPHu0cY55DY9euXfrZz36m+vXrKz4+Xu3bt9dnn33mPG+M0SOPPKLMzEzFx8crNzdXmzdv9nuPAwcOaODAgUpOTlZqaqruuOMOlZaW+o1Zs2aNrrjiCsXFxSk7O1sTJkwIy/erKcrLy/Xwww8rJydH8fHxatasmX73u9/53XuHua66JUuW6Prrr1dWVpZcLpdmzZrl93w453TGjBlq1aqV4uLi1L59e7377rtV/0IGVfb666+b2NhY87e//c18/vnnZtiwYSY1NdUUFBTYLq1G6t27t5kyZYpZt26dWbVqlbnuuutM48aNTWlpqTNm+PDhJjs728yfP9989tln5rLLLjPdunVznj9+/Lhp166dyc3NNStXrjTvvvuuadCggRk3bpwzZtu2bSYhIcGMGTPGrF+/3kyaNMlERUWZOXPmhPX71gSffPKJadq0qbnwwgvNvffe6xxnnoN34MAB06RJEzN48GCzbNkys23bNvP++++bLVu2OGPGjx9vUlJSzKxZs8zq1avNT37yE5OTk2MOHz7sjLn22mvNRRddZD7++GPzwQcfmObNm5tbb73Veb6oqMikp6ebgQMHmnXr1pnXXnvNxMfHmz//+c9h/b42Pfnkk6Z+/fpm9uzZZvv27WbGjBkmMTHRPPfcc84Y5rrq3n33XfPggw+at99+20gyM2fO9Hs+XHP60UcfmaioKDNhwgSzfv1689BDD5mYmBizdu3aKn0fgkwAOnfubEaOHOn8XF5ebrKyskxeXp7FqiLHnj17jCSzePFiY4wxhYWFJiYmxsyYMcMZs2HDBiPJLF261Bhz4j88t9tt8vPznTEvvviiSU5ONmVlZcYYY8aOHWvatm3r91kDBgwwvXv3ru6vVKOUlJSYFi1amLlz55qrrrrKCTLMc2j85je/Md27dz/j816v12RkZJinn37aOVZYWGg8Ho957bXXjDHGrF+/3kgyn376qTPmvffeMy6Xy+zatcsYY8wLL7xg6tat68y777MvuOCCUH+lGqtv375m6NChfsduuukmM3DgQGMMcx0K3w0y4ZzTm2++2fTt29evni5dupi77rqrSt+BU0tVdPToUS1fvly5ubnOMbfbrdzcXC1dutRiZZGjqKhIklSvXj1J0vLly3Xs2DG/OW3VqpUaN27szOnSpUvVvn17paenO2N69+6t4uJiff75586Y09/DN6a2/b6MHDlSffv2rTAXzHNo/POf/9Sll16qn/70p0pLS9PFF1+s//f//p/z/Pbt25Wfn+83RykpKerSpYvfPKempurSSy91xuTm5srtdmvZsmXOmCuvvFKxsbHOmN69e2vjxo369ttvq/tr1gjdunXT/PnztWnTJknS6tWr9eGHH6pPnz6SmOvqEM45DdWfJQSZKtq3b5/Ky8v9/qCXpPT0dOXn51uqKnJ4vV6NHj1al19+udq1aydJys/PV2xsrFJTU/3Gnj6n+fn5lc6577mzjSkuLtbhw4er4+vUOK+//rpWrFihvLy8Cs8xz6Gxbds2vfjii2rRooXef/99jRgxQvfcc4+mTZsm6dQ8ne3PiPz8fKWlpfk9Hx0drXr16lXp9+Jc98ADD+iWW25Rq1atFBMTo4svvlijR4/WwIEDJTHX1SGcc3qmMVWd83P+7teoWUaOHKl169bpww8/tF3KOWfnzp269957NXfuXMXFxdku55zl9Xp16aWX6g9/+IMk6eKLL9a6dev00ksvadCgQZarO7e8+eabevXVVzV9+nS1bdtWq1at0ujRo5WVlcVcw8GKTBU1aNBAUVFRFTo9CgoKlJGRYamqyDBq1CjNnj1bCxcu1Hnnneccz8jI0NGjR1VYWOg3/vQ5zcjIqHTOfc+dbUxycrLi4+ND/XVqnOXLl2vPnj265JJLFB0drejoaC1evFh/+tOfFB0drfT0dOY5BDIzM9WmTRu/Y61bt9aOHTsknZqns/0ZkZGRoT179vg9f/z4cR04cKBKvxfnul//+tfOqkz79u11++2367777nNWHJnr0AvnnJ5pTFXnnCBTRbGxserYsaPmz5/vHPN6vZo/f766du1qsbKayxijUaNGaebMmVqwYIFycnL8nu/YsaNiYmL85nTjxo3asWOHM6ddu3bV2rVr/f7jmTt3rpKTk52/VLp27er3Hr4xteX3pWfPnlq7dq1WrVrlPC699FINHDjQ+TXzHLzLL7+8wuUDNm3apCZNmkiScnJylJGR4TdHxcXFWrZsmd88FxYWavny5c6YBQsWyOv1qkuXLs6YJUuW6NixY86YuXPn6oILLlDdunWr7fvVJIcOHZLb7f/XVFRUlLxeryTmujqEc05D9mdJlbYGwxhzov3a4/GYqVOnmvXr15s777zTpKam+nV64JQRI0aYlJQUs2jRIrN7927ncejQIWfM8OHDTePGjc2CBQvMZ599Zrp27Wq6du3qPO9rC+7Vq5dZtWqVmTNnjmnYsGGlbcG//vWvzYYNG8zkyZNrVVtwZU7vWjKGeQ6FTz75xERHR5snn3zSbN682bz66qsmISHB/OMf/3DGjB8/3qSmppp33nnHrFmzxtxwww2Vtq9efPHFZtmyZebDDz80LVq08GtfLSwsNOnp6eb2228369atM6+//rpJSEg4Z1uCKzNo0CDTqFEjp/367bffNg0aNDBjx451xjDXVVdSUmJWrlxpVq5caSSZZ555xqxcudJ89dVXxpjwzelHH31koqOjzR//+EezYcMG8+ijj9J+HU6TJk0yjRs3NrGxsaZz587m448/tl1SjSWp0seUKVOcMYcPHza//OUvTd26dU1CQoK58cYbze7du/3e58svvzR9+vQx8fHxpkGDBuZXv/qVOXbsmN+YhQsXmg4dOpjY2Fhz/vnn+31GbfTdIMM8h8a//vUv065dO+PxeEyrVq3Myy+/7Pe81+s1Dz/8sElPTzcej8f07NnTbNy40W/M/v37za233moSExNNcnKyGTJkiCkpKfEbs3r1atO9e3fj8XhMo0aNzPjx46v9u9UkxcXF5t577zWNGzc2cXFx5vzzzzcPPvigX0svc111CxcurPTP5EGDBhljwjunb775pmnZsqWJjY01bdu2Nf/+97+r/H1cxpx2iUQAAIAIwh4ZAAAQsQgyAAAgYhFkAABAxCLIAACAiEWQAQAAEYsgAwAAIhZBBgAARCyCDIBzXtOmTTVx4kTbZQCoBgQZACE1ePBg9evXT5LUo0cPjR49OmyfPXXqVKWmplY4/umnn+rOO+8MWx0AwifadgEA8H2OHj2q2NjYgF/fsGHDEFYDoCZhRQZAtRg8eLAWL16s5557Ti6XSy6XS19++aUkad26derTp48SExOVnp6u22+/Xfv27XNe26NHD40aNUqjR49WgwYN1Lt3b0nSM888o/bt26tOnTrKzs7WL3/5S5WWlkqSFi1apCFDhqioqMj5vMcee0xSxVNLO3bs0A033KDExEQlJyfr5ptvVkFBgfP8Y489pg4dOuiVV15R06ZNlZKSoltuuUUlJSXVO2kAqowgA6BaPPfcc+ratauGDRum3bt3a/fu3crOzlZhYaGuvvpqXXzxxfrss880Z84cFRQU6Oabb/Z7/bRp0xQbG6uPPvpIL730kiTJ7XbrT3/6kz7//HNNmzZNCxYs0NixYyVJ3bp108SJE5WcnOx83v3331+hLq/XqxtuuEEHDhzQ4sWLNXfuXG3btk0DBgzwG7d161bNmjVLs2fP1uzZs7V48WKNHz++mmYLQKA4tQSgWqSkpCg2NlYJCQnKyMhwjj///PO6+OKL9Yc//ME59re//U3Z2dnatGmTWrZsKUlq0aKFJkyY4Peep++3adq0qX7/+99r+PDheuGFFxQbG6uUlBS5XC6/z/uu+fPna+3atdq+fbuys7MlSX//+9/Vtm1bffrpp+rUqZOkE4Fn6tSpSkpKkiTdfvvtmj9/vp588sngJgZASLEiAyCsVq9erYULFyoxMdF5tGrVStKJVRCfjh07VnjtvHnz1LNnTzVq1EhJSUm6/fbbtX//fh06dOgHf/6GDRuUnZ3thBhJatOmjVJTU7VhwwbnWNOmTZ0QI0mZmZnas2dPlb4rgOrHigyAsCotLdX111+vp556qsJzmZmZzq/r1Knj99yXX36pH//4xxoxYoSefPJJ1atXTx9++KHuuOMOHT16VAkJCSGtMyYmxu9nl8slr9cb0s8AEDyCDIBqExsbq/Lycr9jl1xyid566y01bdpU0dE//I+g5cuXy+v16n//93/ldp9YTH7zzTe/9/O+q3Xr1tq5c6d27tzprMqsX79ehYWFatOmzQ+uB0DNwKklANWmadOmWrZsmb788kvt27dPXq9XI0eO1IEDB3Trrbfq008/1datW/X+++9ryJAhZw0hzZs317FjxzRp0iRt27ZNr7zyirMJ+PTPKy0t1fz587Vv375KTznl5uaqffv2GjhwoFasWKFPPvlEP//5z3XVVVfp0ksvDfkcAKheBBkA1eb+++9XVFSU2rRpo4YNG2rHjh3KysrSRx99pPLycvXq1Uvt27fX6NGjlZqa6qy0VOaiiy7SM888o6eeekrt2rXTq6++qry8PL8x3bp10/DhwzVgwAA1bNiwwmZh6cQponfeeUd169bVlVdeqdzcXJ1//vl64403Qv79AVQ/lzHG2C4CAAAgEKzIAACAiEWQAQAAEYsgAwAAIhZBBgAARCyCDAAAiFgEGQAAELEIMgAAIGIRZAAAQMQiyAAAgIhFkAEAABGLIAMAACIWQQYAAESs/w9xu1xOqj0+yQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "w = np.array([ 0.2, -0.5])\n",
    "b = -24\n",
    "\n",
    "# Some gradient descent settings\n",
    "iterations = 10000\n",
    "alpha = 0.0001\n",
    "\n",
    "\n",
    "from tqdm.notebook import tqdm\n",
    "progress = tqdm(range(iterations))\n",
    "\n",
    "cost = compute_cost(X,y,w,b)\n",
    "cost_hist = [cost]\n",
    "w_hist = [w]\n",
    "b_hist = [b]\n",
    "\n",
    "\n",
    "\n",
    "for i in progress:\n",
    "    if i % 1000 == 0:\n",
    "        print(f\"Iteration:{i:5}, cost:{cost:3.3}\")\n",
    "\n",
    "    w_gradient, b_gradient = compute_gradient(X,y,w,b)\n",
    "    w = w - alpha * w_gradient\n",
    "    b = b - alpha * b_gradient\n",
    "    cost = compute_cost(X,y,w,b)\n",
    "    w_hist.append(w)\n",
    "    b_hist.append(b)\n",
    "    cost_hist.append(cost)\n",
    "    progress.set_description(f\"Iteration:{i:5}, cost:{cost:3.3}\")\n",
    "    \n",
    "plt.plot(range(iterations + 1 ),cost_hist)\n",
    "plt.xlabel(\"Iteration\")\n",
    "plt.ylabel(\"Cost\")\n",
    "plt.title(\"Gradient Decent\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "id": "a2f4f7ba-6d51-4b89-be4b-bc8acd274ecf",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.20370763497978378"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cost"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "id": "4a868480-6397-4caf-acb2-1bc862226bc2",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.19692019, 0.19204912])"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "w"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "id": "40082a75-2660-412c-b9fb-3e5ab5b76093",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-23.996996103296098"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "b"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "32ee8cc8-aff3-4c2e-8028-e6f9a4fa10f2",
   "metadata": {},
   "source": [
    "决策边界应当是一个f(x) = 0的函数\n",
    "令：\n",
    "$$sigmoid(z) = 0.5$$也就是$$w_1x_1 + w_2x_2 + b = 0$$\n",
    "\n",
    "那么在现在这种情况下，$$x_1 = \\frac{(-b - w_2x_2)}{w_1}$$\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f31d1990-83ee-47bf-b662-5e6d33da5f1a",
   "metadata": {},
   "source": [
    "## 绘制分类图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "id": "516ab428-ab4e-40c9-892d-c43fe3dfee26",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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EiVKKIBSqVIl5dVXX1W+/fZb5datWwbnpaamKqGhoUpISIhy8+ZNg/vS09P1f793716m1/juu+8UQPn111/1xz788EMFUGJjYzOd7+npqURGRmY63r9/fyUoKEj5559/DI53795d8fHx0b/2tm3bFEApW7ZslvE8KjY2VgEUDw8P5a+//tIfj4mJUQBl6NCh+mNjx45VHv71cvjwYQVQXnrpJYPnfPPNNxVA2bp1q/5YlSpVlKeeeirXeBRFUVauXKkAyvvvv29w/Pnnn1d0Op1y7tw5/bGnnnpKqVKlilHPm10M8+fPVwClcePGSmpqqsF9WX0Po6OjFUD55ptv9Mcyvu/btm0ziO3R85KTk5XAwEClc+fO+mMZP4P58+frj0VGRiqA8t577xm8dq1atZQ6derob69YsUIBlBkzZuiPpaWlKc2aNcv0nFmJiopSACUmJkZ/7Nq1a4qPj0+mf6NZfS9eeeUVpXDhwkpSUpL+WJs2bZSQkJBM56ampirJyckGx27evKkEBAQo/fr1yzFOIbIi01hCGCEgIIAjR47w6quvcvPmTWbPns0LL7yAv78/EyZM0E+Z/Pbbb8TGxhIVFZWpPuThpdgPfxpOSkrin3/+0U+RHTp0KN9xKorCihUraNeuHYqi8M8//+i/WrZsSUJCQqbnj4yMzPLTeXY6duxIyZIl9bfr169PgwYN+OWXX7J9TMZ9w4YNMzj+xhtvAPDzzz8b/fqPPq+zszODBw/O9LyKorBu3bp8PW9uXn755UwFwg9/Dx88eMD169cpX748vr6+Rv1Mvby86NWrl/62q6sr9evX548//jAqpldffdXgdpMmTQweu379elxcXHj55Zf1x5ycnBg4cKBRz//LL7/QsGFD6tevrz9WokQJevbsmench78Xt2/f5p9//qFJkybcu3eP33//PdfXcnZ21o8wpqenc+PGDVJTU6lbt26B/n8IxyXJjhBGCgoKYtasWcTFxXH69Glmzpypn8qYN28eoNb2gLqaJyc3btxgyJAhBAQE4OHhQYkSJQgNDQUgISEh3zH+/fff3Lp1izlz5lCiRAmDr759+wJqoe7DMl7XWI8//nimYxUqVMhxRc2FCxdwcnKifPnyBscDAwPx9fXlwoULeYrh4ecNDg6mSJEiBsczpqjy+7y5yep7dv/+fcaMGaOvHSpevDglSpTg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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 计算边界\n",
    "x2 = np.arange(30,100)\n",
    "w1 = w[0]\n",
    "w2 = w[1]\n",
    "x1 = (-w2*x2-b)/w1\n",
    "\n",
    "# 绘制原图以及边界\n",
    "plt.plot(x1,x2, label = \"Decision Border\",color = \"red\")\n",
    "plt.scatter(score_1_pos, score_2_pos, label = \"Admitted\")\n",
    "plt.scatter(score_1_neg, score_2_neg, label = \"Fail\")\n",
    "plt.legend()\n",
    "plt.xlabel(\"Exam 1 socre\")\n",
    "plt.ylabel(\"Exam 2 score\")\n",
    "plt.title(\" Scatter plot of training data\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "id": "793153d5-d5e6-445f-a067-2831f43ff57f",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "t\n",
    "z = np.dot(X,w) + b\n",
    "g = sigmoid(z)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "id": "22a58746-35a6-4a33-b5ba-f713d89e463b",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "Y_pred = np.zeros(y.shape[0])\n",
    "iter_ = 0\n",
    "for i in g:\n",
    "    p = i\n",
    "    if i > 0.5:\n",
    "        y_pred = 1\n",
    "    else:\n",
    "        y_pred = 0\n",
    "    \n",
    "    Y_pred[iter_] = y_pred\n",
    "    iter_ += 1\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "id": "e7b58bb0-99a5-4325-9889-42e3b007544e",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.89"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.mean(Y_pred == y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "id": "b6a09af3-c423-4720-b14f-39c3ff332a6d",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(100,)"
      ]
     },
     "execution_count": 100,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "g.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a99f8b89-5813-4c87-8b88-c155d073b2ca",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
